home *** CD-ROM | disk | FTP | other *** search
- /* libwmf (<libwmf/font.h>): library for wmf conversion
- Copyright (C) 2001 Francis James Franklin
-
- The libwmf Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The libwmf Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the libwmf Library; see the file COPYING. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-
- #ifndef LIBWMF_FONT_H
- #define LIBWMF_FONT_H
-
- #include <libwmf/ipa.h>
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- typedef struct _wmfFT_Mapping wmfFT_Mapping;
- typedef struct _wmfFT_CacheEntry wmfFT_CacheEntry;
-
- typedef struct _wmfGS_FontData wmfGS_FontData;
- typedef struct _wmfGS_FontInfo wmfGS_FontInfo;
-
- typedef struct _wmfXML_FontData wmfXML_FontData;
- typedef struct _wmfXML_FontInfo wmfXML_FontInfo;
-
- typedef struct _wmfFontmapData wmfFontmapData;
-
- typedef struct _wmfIPAFont wmfIPAFont;
-
- typedef void (*wmfCharDrawer) (wmfAPI*,wmfDrawText_t*);
-
- extern void wmf_ipa_font_init (wmfAPI*,wmfAPI_Options*);
- extern void wmf_ipa_font_map_gs (wmfAPI*,wmfGS_FontData*,char*);
- extern void wmf_ipa_font_map_xml (wmfAPI*,wmfXML_FontData*,char*);
- extern void wmf_ipa_font_map_set (wmfAPI*,wmfMap);
- extern void wmf_ipa_font_map (wmfAPI*,wmfFont*);
- extern void wmf_ipa_font_dir (wmfAPI*,char*);
- extern float wmf_ipa_font_stringwidth (wmfAPI*,wmfFont*,char*);
- extern char* wmf_ipa_font_lookup (wmfAPI*,char*);
-
- extern void wmf_ipa_draw_text (wmfAPI*,wmfDrawText_t*,wmfCharDrawer);
-
- struct _wmfFT_Mapping
- { char* name;
- char* mapping;
-
- FT_Encoding encoding;
- FT_Face face;
- };
-
- struct _wmfFT_CacheEntry
- { char* name;
- char* path;
-
- FT_Face face;
- };
-
- struct _wmfGS_FontData
- { unsigned int max;
- unsigned int len;
-
- wmfGS_FontInfo* FI;
- };
-
- struct _wmfGS_FontInfo
- { char* name;
- char* alias;
- };
-
- struct _wmfXML_FontData
- { unsigned int max;
- unsigned int len;
-
- wmfXML_FontInfo* FI;
- };
-
- struct _wmfXML_FontInfo
- { char* format;
- char* metrics;
- char* glyphs;
- char* name;
- char* fullname;
- char* familyname;
- char* weight;
- char* version;
- char* alias;
- };
-
- struct _wmfFontmapData
- { char** fontdirs;
-
- wmfFontMap* wmf; /* {0,*}-terminated list: wmf-font-name -> ps-font-name */
- wmfMapping* sub; /* {0,*}-terminated list: wmf-font-name substring equiv */
- wmfFT_Mapping* ps; /* {0,*}-terminated list: ps-font-name -> pfb-file-root */
-
- wmfFT_CacheEntry* cache; /* {0,*}-terminated list: path / font-face cache */
-
- wmfGS_FontData GS; /* structure for ghostscript font info */
- wmfXML_FontData FD; /* structure for system font info */
-
- FT_Library Library;
- };
-
- struct _wmfIPAFont
- { char* ps_name;
-
- FT_Face ft_face;
- };
-
- /**
- * WMF_FONT_PSNAME(wmfFont* F) -> (char*) font name to use in postscript output
- */
- #define WMF_FONT_PSNAME(F) ((F)->user_data ? ((wmfIPAFont*) (F)->user_data)->ps_name : 0)
-
- /**
- * WMF_FONT_FTFACE(wmfFont* F) -> (FT_Face) freetype(2) font face
- */
- #define WMF_FONT_FTFACE(F) ((F)->user_data ? ((wmfIPAFont*) (F)->user_data)->ft_face : 0)
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif /* ! LIBWMF_FONT_H */
-